// 文件路径: /src/utils/apiClient.ts
import axios, { AxiosError } from "axios";

// 创建 Axios 实例
const apiClient = axios.create({
    baseURL: "/api", // 替换为你的后端 API 地址
    timeout: 5000, // 超时时间
});

// 请求拦截器：在每个请求中自动添加 JWT Token
apiClient.interceptors.request.use(
    (config) => {
        const token = localStorage.getItem("authToken");
        if (token) {
            config.headers.Authorization = `Bearer ${token}`;
        }
        return config;
    },
    (error: AxiosError) => {
        return Promise.reject(error);
    }
);

// 响应拦截器：处理未授权和其他错误
apiClient.interceptors.response.use(
    (response) => {
        return response; // 正常响应直接返回
    },
    (error: AxiosError) => {
        if (error.response?.status === 401) {
            // 清除登录状态
            localStorage.removeItem("authToken");
            // 跳转到登录页面
            window.location.href = "/login"; // 替换为你的登录页面路径
        }
        return Promise.reject(error); // 抛出错误供调用方处理
    }
);

export default apiClient;